Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Програмування системного таймера 8253/8254 та робота з годинником реального часу.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Системи автоматизованого проектуваня

Інформація про роботу

Рік:
2007
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп'ютерів
Група:
КН

Частина тексту файла

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра САПР  Лабораторна робота №10 з курсу“Архітектура комп’ютера” на тему: “Програмування системного таймера 8253/8254 та робота з годинником реального часу”. Виконав: студент групи КН-3 Львів-2007 Лабораторне завдання Запрограмувати таймер на виконання мелодії  -Metallica "Nothing Else Matters" по вказаним кодам: E3(1/8) P(1/8) E3(1/4) P(1/8) E3(1/8) E2(1/4) P(1/8) E3(1/8) F3(1/8) E3(1/8) D3(1/8) D3(1/8) E3(1/8) D3(1/8) A2(1/8) P(1/8) A2(1/4) P(1/8) A2(1/8) P(1/8) H2(1/8) A2(1/4) Результати виконаних пунктів завдання Програма: .186 .model small .stack 100h PORT_B EQU 61H COMMAND_REG EQU 43H LATCH2 EQU 42H B4 EQU 16 ; тривалості нот B2 EQU B4/2 B1 EQU B4/4 M3 EQU 1 ; ноти M2 EQU 2 FA EQU 3 RE EQU 4 LA EQU 5 Se EQU 6 FIN EQU 0FFH .data ; таблиця частот FREQUENCY DW 896,1809,855,1015,2711,2415 ; тривалість нот BEAT DB B1,B1,B2,B1,B1,B2,B1,B1 DB B1,B1,B1,B1,B1,B1 DB B1,B1,B2,B1,B1,B1,B1,B2 ; номер частоти ноти MELODY DB M3, ,M3, ,M3,M2, ,M3 DB FA,M3,RE,RE,M3,RE DB LA, ,LA, ,LA, ,Se,LA,FIN .code .startup JMP INIT ; дивимося ноту, отримуємо її частоту і поміщаємо в канал 2 NEXT_NOTE: PUSHA IN AL,PORT_B ; отримуємо статус порта В AND AL,0FCH ; виключаємо динамік OUT 61H,AL ; заміняємо байт POPA ; Ініціалізація INIT: PUSHA IN AL,PORT_B ; отримужмо поточний статус OR AL,00000011B ; дозволяємо динамік и таймер OUT PORT_B,AL ; заміняємо байт MOV SI,0 ; ініціалізуємо вказівник MOV AL,0B6H ; встановлення для канала 2 OUT COMMAND_REG,AL ; посилаємо в командний регістр POPA LEA BX,MELODY ; беремо зміщення для мелодії MOV AL,[BX][SI] ; беремо код n-ної ноти рядка CMP AL,0FFH ; перевірка на кінець рядка JE NO_MORE ; якщо кінець, то на вихід CBW ; перетворюємо в слово ; отримання частоти MOV BX,OFFSET FREQUENCY ; зміщення таблиці частот DEC AX ; починаємо відлік з 0 SHL AX,1 ; *2, оскільки слова MOV DI,AX ; адресація через DI MOV DX,[BX][DI] ; отримуємо частоту з таблиці ; починаємо відтворення ноти MOV AL,DL ; готовимо молодший байт частоти OUT LATCH2,AL ; посилаємо його MOV AL,DH ; готовимо старший байт частоти OUT LATCH2,AL ; посилаємо його ; створення циклу затримки MOV AH,0 ; номер функцїї читання лічильника INT 1AH ; отримуємо значення лічильника MOV BX,OFFSET BEAT ; зміщення таблиці довжин MOV CL,[BX][SI] ; беремо довжину наступної ноти MOV CH,0 MOV BX,DX ; беремо молодше слово лічильника ADD BX,CX ; визначаємо момент закінчення STILL_SOUND:INT 1AH ; беремо значення лічильника CMP DX,BX ; порівнюємо із закінченням JNE STILL_SOUND ; нерівні - продовжуємо звук INC SI ; переходимо до наступної ноти JMP NEXT_NOTE ; закінчення NO_MORE: IN AL,PORT_B ; отримуємо статус порта В AND AL,0FCH ; виключаємо динамік OUT 61H,AL ; заміняємо байт .exit 0 End Висновок: На цій лабораторній роботі я навчився програмувати системний таймер 8253/8254 та працювати з годинником реального часу.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини